package com.tfjybj.itoo.exam.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.Date;

/**
 * CourseScheduleModel
 * 教师-机构对应表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-22 16:26:53
 */
@ApiModel(value = "CourseScheduleModel:教师-机构对应表")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class CourseScheduleModel implements Serializable {

    //region 模板逆向生产来自CourseScheduleEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "courseSchedule主键")
    @Column(name = "id")
    private String id;
    /**
     * 班级_id
     */
    @ApiModelProperty(value = "班级_id", required = true)
    private String classId;

    /**
     * 上课班_id
     */
    @ApiModelProperty(value = "上课班_id", required = true)
    private String teachClassId;

    /**
     * 教室_id
     */
    @ApiModelProperty(value = "教室_id", required = true)
    private String roomId;

    /**
     * 节次(00-第一节,01-第二节,02-第三节,03-第四节,04-第五节,05-第六节,06-第七节,07-第八节,08-第九节,09-第十节)
     */
    @ApiModelProperty(value = "节次(00-第一节,01-第二节,02-第三节,03-第四节,04-第五节,05-第六节,06-第七节,07-第八节,08-第九节,09-第十节)", required = true)
    private String cellTimeId;

    /**
     * 星期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)
     */
    @ApiModelProperty(value = "星期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)", required = true)
    private String weekId;

    /**
     * 教师和上课班关联表id
     */
    @ApiModelProperty(value = "教师和上课班关联表id", required = true)
    private String teacherTeachId;

    /**
     * 教师id
     */
    @ApiModelProperty(value = "教师id")
    private String teacherId;

    /**
     * teacher_name
     */
    @ApiModelProperty(value = "teacher_name")
    private String teacherName;

    /**
     * 课程id
     */
    @ApiModelProperty(value = "课程id")
    private String courseId;

    /**
     * 课程名称
     */
    @ApiModelProperty(value = "课程名称")
    private String courseName;

    /**
     * 开始周
     */
    @ApiModelProperty(value = "开始周", example = "0")
    private Integer startWeek;

    /**
     * 结束周
     */
    @ApiModelProperty(value = "结束周", example = "0")
    private Integer endWeek;

    /**
     * 单双周（0/1/2 单/双/全）
     */
    @ApiModelProperty(value = "单双周（0/1/2 单/双/全）", example = "0")
    private Integer oddWeekOrNot;

    /**
     * 学期_id
     */
    @ApiModelProperty(value = "学期_id", required = true)
    private String semesterId;

    /**
     * 选课人数上限
     */
    @ApiModelProperty(value = "选课人数上限", example = "0")
    private Integer topLimit;

    /**
     * 选课人数下限
     */
    @ApiModelProperty(value = "选课人数下限", example = "0")
    private Integer lowLimit;

    /**
     * 选课开始日期
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "选课开始日期")
    private Date startDate;

    /**
     * 选课结束日期
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "选课结束日期")
    private Date endDate;

    /**
     * 学分
     */
    @ApiModelProperty(value = "学分", example = "0")
    private Integer credit;

    //endregion

    /* *****************************以下是非模板生成的内容************************************ */
}
